package com.cskaoyan.javase._1extends._10final._3variable._3static;

/**
 * 访问类的静态成员是类加载的时机,会触发类加载
 * 类加载的过程: 加载-->连接-->初始化
 * 在初始化过程中,执行static相关的,主要是静态成员变量的显式赋值和静态代码块
 *
 * 那么访问类的全局常量,会触发类加载吗?类初始化会进行吗?静态代码块会执行吗?
 * 访问类的字面值常量赋值的全局常量不会触发类初始化,类的静态代码块不会执行
 * 但是访问类的new对象方式赋值的全局常量会触发类初始化,会执行静态代码块
 *
 * @since 10:46
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // System.out.println(A.num);
        // System.out.println(A.var);
        // System.out.println(A.var2);
        System.out.println(A.var3);
    }
}

class A {
    // static int num = 10;
    // static final double var = 10;
    // static final String var2 = "hello";
    static final String var3 = new String("hello");

    static {
        System.out.println("A类初始化了!");
    }
}